##
## Material para replicação dos ANEXOS
## Título: Gênero, dinâmicas de poder intrapartidárias e manterrupting no Legislativo
## Autores: Mauricio Izumi e Debora Thome
##

#diretório de trabalho
setwd("C:\\Users\\Mauricio\\Desktop\\pc\\pesquisas\\discursos_sf\\replication\\")
set.seed(1234)

#carrega pacotes
library(data.table)
library(dplyr)
library(stargazer)
#devtools::install_github("IQSS/Zelig")
library(Zelig)
library(ggplot2)

#################

#carrega dados
tab <- fread("finalKLDParty.csv.gz")
tab <- data.frame(tab)

##
## Anexo 1: Modelos de regressão linear para o número de discursos
##

#agrupando os dados
temp <- tab %>%
	group_by(id_sen, legislatura, mulher) %>%
	summarize(n = n(),
		    n.palavras = sum(n.words.autor),
		    coal = sum(coalizao),
		    lpart = sum(lider_part),
		    lgov = sum(lider_gov)) %>%
	mutate(coal = ifelse(coal > 0, 1, 0),
		 lpart = ifelse(lpart > 0, 1, 0),
		 lgov = ifelse(lgov > 0, 1, 0))

#modelo 1: controle por legislatura
m1 <- lm(n ~ mulher +
		as.factor(legislatura),
		data = temp)

#modelo 2: inclui variáveis políticas
m2 <- lm(n ~ mulher +
		as.factor(legislatura) +
		coal,
		data = temp)

#modelo 3: inclui controles de posições de poder
m3 <- lm(n ~ mulher +
		as.factor(legislatura) +
		coal +
		lpart + lgov,
		data = temp)

#export results
stargazer(m1, m2, m3,
	covariate.labels = c("Mulher", "51ª Legislatura",
				   "52ª Legislatura", "53ª Legislatura",
				   "54ª Legislatura", "55ª Legislatura",
				   "Coalizão", 
				   "Líder Partidário", "Líder do Governo",
				   "Constante"),
	notes.label = "Nota:",
	dep.var.caption = "",
	dep.var.labels = "Variável Dependente: Número de discursos",
	type = "html",
	out = "tabela02.docx")

#############################

##
## Anexo 2: Modelos de regressão linear para o comprimento dos discursos
##

#modelo 1: com efeito fixo de legislatura e tópico e tamanho do discurso
m1 <- lm(n.words.autor ~ mulher + as.factor(main.topic.autor) +
		as.factor(legislatura),
		data = tab)

#modelo 2: inclui variáveis políticas
m2 <- lm(n.words.autor ~ mulher + as.factor(main.topic.autor) +
		as.factor(legislatura) +
		coalizao + n_legs + 
		as.factor(sigla_junta),
		data = tab)

#modelo 3: inclui variáveis de posição de poder
m3 <- lm(n.words.autor ~ mulher + as.factor(main.topic.autor) +
		as.factor(legislatura) +
		coalizao + n_legs + 
		as.factor(sigla_junta) +
		lider_part + lider_gov,
		data = tab)

#export results
stargazer(m1, m2, m3, 
	omit = c("main.topic.autor","legislatura","sigla_junta"),
	covariate.labels = c("Mulher",
				   "Coalizão", "Experiência",
				   "Líder Partidário", "Líder do Governo",
				   "Constante"),
	notes.label = "Nota:",
	dep.var.caption = "",
	dep.var.labels = "Variável Dependente: Número de palavras no discurso",
	add.lines = list(c("Controle de Legislatura", "Sim", "Sim", "Sim", "Sim"),
			     c("Controle de Tópico", "Sim", "Sim", "Sim", "Sim"),
			     c("Controle de Partido", "Não", "Sim", "Sim", "Sim")),
	type = "html",
	out = "tabela03.docx")

#########################

##
## Anexo 4 - Modelos de regressão logística
##

##
## Tabelas com os resultados das regressões logit
##

##
## VD: Interrompido
##

#modelo 1: com efeito fixo de legislatura e tópico e tamanho do discurso
m1 <- glm(aparte ~ mulher + as.factor(main.topic.autor) +
		as.factor(legislatura) +
		n.words.autor,
		data = tab,
		family = binomial(link = "logit"))

#modelo 2: inclui variáveis políticas
m2 <- glm(aparte ~ mulher + as.factor(main.topic.autor) +
		as.factor(legislatura) +
		n.words.autor +
		coalizao + n_legs + 
		as.factor(sigla_junta),
		data = tab,
		family = binomial(link = "logit"))

#modelo 3: inclui variáveis de posição de poder
m3 <- glm(aparte ~ mulher + as.factor(main.topic.autor) +
		as.factor(legislatura) +
		n.words.autor +
		coalizao + n_legs + 
		as.factor(sigla_junta) +
		lider_part + lider_gov,
		data = tab,
		family = binomial(link = "logit"))

#modelo 4: inclui a interação
m4 <- glm(aparte ~ mulher + as.factor(main.topic.autor) +
		as.factor(legislatura) +
		n.words.autor +
		coalizao + n_legs + 
		as.factor(sigla_junta) +
		lider_part + lider_gov +
		lider_part:mulher,
		data = tab,
		family = binomial(link = "logit"))

#exporta resultados
stargazer(m1, m2, m3, m4, 
	omit = c("main.topic.autor","legislatura","sigla_junta"),
	covariate.labels = c("Mulher", "Número de palavras",
				   "Coalizão", "Experiência",
				   "Líder Partidário", "Líder do Governo",
				   "Mulher X Líder Partidário",
				   "Constante"),
	notes.label = "Nota:",
	dep.var.caption = "",
	dep.var.labels = "Variável Dependente: Interrompido",
	add.lines = list(c("Controle de Legislatura", "Sim", "Sim", "Sim", "Sim"),
			     c("Controle de Tópico", "Sim", "Sim", "Sim", "Sim"),
			     c("Controle de Partido", "Não", "Sim", "Sim", "Sim")),
	type = "html",
	out = "tabela05.docx")

##
## Interrompido por homem
##

#modelo 1: com efeito fixo de legislatura e tópico e tamanho do discurso
m1 <- glm(aparte.H ~ mulher + as.factor(main.topic.autor) +
		as.factor(legislatura) +
		n.words.autor,
		data = tab,
		family = binomial(link = "logit"))

#modelo 2: inclui variáveis políticas
m2 <- glm(aparte.H ~ mulher + as.factor(main.topic.autor) +
		as.factor(legislatura) +
		n.words.autor +
		coalizao + n_legs + 
		as.factor(sigla_junta),
		data = tab,
		family = binomial(link = "logit"))

#modelo 3: inclui variáveis de posição de poder
m3 <- glm(aparte.H ~ mulher + as.factor(main.topic.autor) +
		as.factor(legislatura) +
		n.words.autor +
		coalizao + n_legs + 
		as.factor(sigla_junta) +
		lider_part + lider_gov,
		data = tab,
		family = binomial(link = "logit"))

#modelo 4: inclui a interação
m4 <- glm(aparte.H ~ mulher + as.factor(main.topic.autor) +
		as.factor(legislatura) +
		n.words.autor +
		coalizao + n_legs + 
		as.factor(sigla_junta) +
		lider_part + lider_gov +
		lider_part:mulher,
		data = tab,
		family = binomial(link = "logit"))

#exporta resultados
stargazer(m1, m2, m3, m4, 
	omit = c("main.topic.autor","legislatura","sigla_junta"),
	covariate.labels = c("Mulher", "Número de palavras",
				   "Coalizão", "Experiência",
				   "Líder Partidário", "Líder do Governo",
				   "Mulher X Líder Partidário",
				   "Constante"),
	notes.label = "Nota:",
	dep.var.caption = "",
	dep.var.labels = "Variável Dependente: Interrompido por Homem",
	add.lines = list(c("Controle de Legislatura", "Sim", "Sim", "Sim", "Sim"),
			     c("Controle de Tópico", "Sim", "Sim", "Sim", "Sim"),
			     c("Controle de Partido", "Não", "Sim", "Sim", "Sim")),
	type = "html",
	out = "tabela06.docx")

##
## Interrompido por mulher
##

#modelo 1: com efeito fixo de legislatura e tópico e tamanho do discurso
m1 <- glm(aparte.M ~ mulher + as.factor(main.topic.autor) +
		as.factor(legislatura) +
		n.words.autor,
		data = tab,
		family = binomial(link = "logit"))

#modelo 2: inclui variáveis políticas
m2 <- glm(aparte.M ~ mulher + as.factor(main.topic.autor) +
		as.factor(legislatura) +
		n.words.autor +
		coalizao + n_legs + 
		as.factor(sigla_junta),
		data = tab,
		family = binomial(link = "logit"))

#modelo 3: inclui variáveis de posição de poder
m3 <- glm(aparte.M ~ mulher + as.factor(main.topic.autor) +
		as.factor(legislatura) +
		n.words.autor +
		coalizao + n_legs + 
		as.factor(sigla_junta) +
		lider_part + lider_gov,
		data = tab,
		family = binomial(link = "logit"))

#modelo 4: inclui a interação
m4 <- glm(aparte.M ~ mulher + as.factor(main.topic.autor) +
		as.factor(legislatura) +
		n.words.autor +
		coalizao + n_legs + 
		as.factor(sigla_junta) +
		lider_part + lider_gov +
		lider_part:mulher,
		data = tab,
		family = binomial(link = "logit"))

#exporta resultados
stargazer(m1, m2, m3, m4, 
	omit = c("main.topic.autor","legislatura","sigla_junta"),
	covariate.labels = c("Mulher", "Número de palavras",
				   "Coalizão", "Experiência",
				   "Líder Partidário", "Líder do Governo",
				   "Mulher X Líder Partidário",
				   "Constante"),
	notes.label = "Nota:",
	dep.var.caption = "",
	dep.var.labels = "Variável Dependente: Interrompido por Mulher",
	add.lines = list(c("Controle de Legislatura", "Sim", "Sim", "Sim", "Sim"),
			     c("Controle de Tópico", "Sim", "Sim", "Sim", "Sim"),
			     c("Controle de Partido", "Não", "Sim", "Sim", "Sim")),
	type = "html",
	out = "tabela07.docx")

##
## Interrompido por membro do próprio partido
##

#modelo 1: com efeito fixo de legislatura e tópico e tamanho do discurso
m1 <- glm(apart.party ~ mulher + as.factor(main.topic.autor) +
		as.factor(legislatura) +
		n.words.autor,
		data = tab,
		family = binomial(link = "logit"))

#modelo 2: inclui variáveis políticas
m2 <- glm(apart.party ~ mulher + as.factor(main.topic.autor) +
		as.factor(legislatura) +
		n.words.autor +
		coalizao + n_legs + 
		as.factor(sigla_junta),
		data = tab,
		family = binomial(link = "logit"))

#modelo 3: inclui variáveis de posição de poder
m3 <- glm(apart.party ~ mulher + as.factor(main.topic.autor) +
		as.factor(legislatura) +
		n.words.autor +
		coalizao + n_legs + 
		as.factor(sigla_junta) +
		lider_part + lider_gov,
		data = tab,
		family = binomial(link = "logit"))

#modelo 4: inclui a interação
m4 <- glm(apart.party ~ mulher + as.factor(main.topic.autor) +
		as.factor(legislatura) +
		n.words.autor +
		coalizao + n_legs + 
		as.factor(sigla_junta) +
		lider_part + lider_gov +
		lider_part:mulher,
		data = tab,
		family = binomial(link = "logit"))

#exporta resultados
stargazer(m1, m2, m3, m4, 
	omit = c("main.topic.autor","legislatura","sigla_junta"),
	covariate.labels = c("Mulher", "Número de palavras",
				   "Coalizão", "Experiência",
				   "Líder Partidário", "Líder do Governo",
				   "Mulher X Líder Partidário",
				   "Constante"),
	notes.label = "Nota:",
	dep.var.caption = "",
	dep.var.labels = "Variável Dependente: Interrompido por membro do próprio partido",
	add.lines = list(c("Controle de Legislatura", "Sim", "Sim", "Sim", "Sim"),
			     c("Controle de Tópico", "Sim", "Sim", "Sim", "Sim"),
			     c("Controle de Partido", "Não", "Sim", "Sim", "Sim")),
	type = "html",
	out = "tabela08.docx")

##
## Interrompido por membro de outro partido
##

#modelo 1: com efeito fixo de legislatura e tópico e tamanho do discurso
m1 <- glm(apart.other ~ mulher + as.factor(main.topic.autor) +
		as.factor(legislatura) +
		n.words.autor,
		data = tab,
		family = binomial(link = "logit"))

#modelo 2: inclui variáveis políticas
m2 <- glm(apart.other ~ mulher + as.factor(main.topic.autor) +
		as.factor(legislatura) +
		n.words.autor +
		coalizao + n_legs + 
		as.factor(sigla_junta),
		data = tab,
		family = binomial(link = "logit"))

#modelo 3: inclui variáveis de posição de poder
m3 <- glm(apart.other ~ mulher + as.factor(main.topic.autor) +
		as.factor(legislatura) +
		n.words.autor +
		coalizao + n_legs + 
		as.factor(sigla_junta) +
		lider_part + lider_gov,
		data = tab,
		family = binomial(link = "logit"))

#modelo 4: inclui a interação
m4 <- glm(apart.other ~ mulher + as.factor(main.topic.autor) +
		as.factor(legislatura) +
		n.words.autor +
		coalizao + n_legs + 
		as.factor(sigla_junta) +
		lider_part + lider_gov +
		lider_part:mulher,
		data = tab,
		family = binomial(link = "logit"))

#exporta resultados
stargazer(m1, m2, m3, m4, 
	omit = c("main.topic.autor","legislatura","sigla_junta"),
	covariate.labels = c("Mulher", "Número de palavras",
				   "Coalizão", "Experiência",
				   "Líder Partidário", "Líder do Governo",
				   "Mulher X Líder Partidário",
				   "Constante"),
	notes.label = "Nota:",
	dep.var.caption = "",
	dep.var.labels = "Variável Dependente: Interrompido por membro de outro partido",
	add.lines = list(c("Controle de Legislatura", "Sim", "Sim", "Sim", "Sim"),
			     c("Controle de Tópico", "Sim", "Sim", "Sim", "Sim"),
			     c("Controle de Partido", "Não", "Sim", "Sim", "Sim")),
	type = "html",
	out = "tabela09.docx")

##
## Recebeu uma questão
##

#modelo 1: com efeito fixo de legislatura e tópico e tamanho do discurso
m1 <- glm(quest ~ mulher + as.factor(main.topic.autor) +
		as.factor(legislatura) +
		n.words.autor,
		data = tab,
		family = binomial(link = "logit"))

#modelo 2: inclui variáveis políticas
m2 <- glm(quest ~ mulher + as.factor(main.topic.autor) +
		as.factor(legislatura) +
		n.words.autor +
		coalizao + n_legs + 
		as.factor(sigla_junta),
		data = tab,
		family = binomial(link = "logit"))

#modelo 3: inclui variáveis de posição de poder
m3 <- glm(quest ~ mulher + as.factor(main.topic.autor) +
		as.factor(legislatura) +
		n.words.autor +
		coalizao + n_legs + 
		as.factor(sigla_junta) +
		lider_part + lider_gov,
		data = tab,
		family = binomial(link = "logit"))

#modelo 4: inclui a interação
m4 <- glm(quest ~ mulher + as.factor(main.topic.autor) +
		as.factor(legislatura) +
		n.words.autor +
		coalizao + n_legs + 
		as.factor(sigla_junta) +
		lider_part + lider_gov +
		lider_part:mulher,
		data = tab,
		family = binomial(link = "logit"))

#exporta resultados
stargazer(m1, m2, m3, m4, 
	omit = c("main.topic.autor","legislatura","sigla_junta"),
	covariate.labels = c("Mulher", "Número de palavras",
				   "Coalizão", "Experiência",
				   "Líder Partidário", "Líder do Governo",
				   "Mulher X Líder Partidário",
				   "Constante"),
	notes.label = "Nota:",
	dep.var.caption = "",
	dep.var.labels = "Variável Dependente: Recebeu uma questão",
	add.lines = list(c("Controle de Legislatura", "Sim", "Sim", "Sim", "Sim"),
			     c("Controle de Tópico", "Sim", "Sim", "Sim", "Sim"),
			     c("Controle de Partido", "Não", "Sim", "Sim", "Sim")),
	type = "html",
	out = "tabela10.docx")

##
## Recebeu questão de membro do próprio partido
##

#modelo 1: com efeito fixo de legislatura e tópico e tamanho do discurso
m1 <- glm(quest.part ~ mulher + as.factor(main.topic.autor) +
		as.factor(legislatura) +
		n.words.autor,
		data = tab,
		family = binomial(link = "logit"))

#modelo 2: inclui variáveis políticas
m2 <- glm(quest.part ~ mulher + as.factor(main.topic.autor) +
		as.factor(legislatura) +
		n.words.autor +
		coalizao + n_legs + 
		as.factor(sigla_junta),
		data = tab,
		family = binomial(link = "logit"))

#modelo 3: inclui variáveis de posição de poder
m3 <- glm(quest.part ~ mulher + as.factor(main.topic.autor) +
		as.factor(legislatura) +
		n.words.autor +
		coalizao + n_legs + 
		as.factor(sigla_junta) +
		lider_part + lider_gov,
		data = tab,
		family = binomial(link = "logit"))

#modelo 4: inclui a interação
m4 <- glm(quest.part ~ mulher + as.factor(main.topic.autor) +
		as.factor(legislatura) +
		n.words.autor +
		coalizao + n_legs + 
		as.factor(sigla_junta) +
		lider_part + lider_gov +
		lider_part:mulher,
		data = tab,
		family = binomial(link = "logit"))

#exporta resultados
stargazer(m1, m2, m3, m4, 
	omit = c("main.topic.autor","legislatura","sigla_junta"),
	covariate.labels = c("Mulher", "Número de palavras",
				   "Coalizão", "Experiência",
				   "Líder Partidário", "Líder do Governo",
				   "Mulher X Líder Partidário",
				   "Constante"),
	notes.label = "Nota:",
	dep.var.caption = "",
	dep.var.labels = "Variável Dependente: Recebeu questão de membro do próprio partido",
	add.lines = list(c("Controle de Legislatura", "Sim", "Sim", "Sim", "Sim"),
			     c("Controle de Tópico", "Sim", "Sim", "Sim", "Sim"),
			     c("Controle de Partido", "Não", "Sim", "Sim", "Sim")),
	type = "html",
	out = "tabela11.docx")

##
## Recebeu questão de membro de outro partido
##

#modelo 1: com efeito fixo de legislatura e tópico e tamanho do discurso
m1 <- glm(quest.other ~ mulher + as.factor(main.topic.autor) +
		as.factor(legislatura) +
		n.words.autor,
		data = tab,
		family = binomial(link = "logit"))

#modelo 2: inclui variáveis políticas
m2 <- glm(quest.other ~ mulher + as.factor(main.topic.autor) +
		as.factor(legislatura) +
		n.words.autor +
		coalizao + n_legs + 
		as.factor(sigla_junta),
		data = tab,
		family = binomial(link = "logit"))

#modelo 3: inclui variáveis de posição de poder
m3 <- glm(quest.other ~ mulher + as.factor(main.topic.autor) +
		as.factor(legislatura) +
		n.words.autor +
		coalizao + n_legs + 
		as.factor(sigla_junta) +
		lider_part + lider_gov,
		data = tab,
		family = binomial(link = "logit"))

#modelo 4: inclui a interação
m4 <- glm(quest.other ~ mulher + as.factor(main.topic.autor) +
		as.factor(legislatura) +
		n.words.autor +
		coalizao + n_legs + 
		as.factor(sigla_junta) +
		lider_part + lider_gov +
		lider_part:mulher,
		data = tab,
		family = binomial(link = "logit"))

#exporta resultados
stargazer(m1, m2, m3, m4, 
	omit = c("main.topic.autor","legislatura","sigla_junta"),
	covariate.labels = c("Mulher", "Número de palavras",
				   "Coalizão", "Experiência",
				   "Líder Partidário", "Líder do Governo",
				   "Mulher X Líder Partidário",
				   "Constante"),
	notes.label = "Nota:",
	dep.var.caption = "",
	dep.var.labels = "Variável Dependente: Recebeu questão de membro de outro partido",
	add.lines = list(c("Controle de Legislatura", "Sim", "Sim", "Sim", "Sim"),
			     c("Controle de Tópico", "Sim", "Sim", "Sim", "Sim"),
			     c("Controle de Partido", "Não", "Sim", "Sim", "Sim")),
	type = "html",
	out = "tabela12.docx")

##############################

##
## Anexo 5: Distribuição de interrupções entre as mulheres líderes
##

temp <- tab %>%
	filter(mulher == 1 & lider_part == 1) %>%
	group_by(autor) %>%
	summarize(int = sum(aparte),
		    n = n()) %>%
	mutate(porc.int = int/n*100)
temp

#############################

##
## Anexo 6: Gráficos com as primeiras diferenças
##

##
## Regressão logística sem interações
##

#lista de variáveis dependentes
vd <- c("quest.other","quest.part","quest",
	  "apart.other","apart.party",
	  "aparte.M","aparte.H","aparte")

vd.cod <- NULL
for(i in 1:length(vd)){
	vd.cod[i] <- which(colnames(tab) == vd[i])
}

#zelig
z.out <- NULL
x.mulher <- NULL
x.homem <- NULL
s.out <- list(NULL)
for(i in 1:length(vd)){
#modelos
	z.out <- zelig(tab[,vd.cod[i]] ~ mulher + 
		as.factor(main.topic.autor) +
		as.factor(legislatura) +
		n.words.autor +
		coalizao + n_legs + 
		as.factor(sigla_junta) +
		lider_part + lider_gov,
		data = tab,
		model = "logit")

#define variáveis explicativas
	x.mulher <- setx(z.out, mulher = 0)
	x.homem <- setx(z.out, mulher = 1)

#simula quantidades de interesse
	s.out[[i]] <- sim(z.out, x = x.mulher, x1 = x.homem)
}

#primeira diferença
m.mulher <- NULL
m.homem <- NULL
m.fd <- NULL
q025.fd <- NULL
q975.fd <- NULL
for(i in 1:length(vd)){
	m.mulher[i] <- mean(s.out[[i]]$sim.out$x$ev[[1]])
	m.homem[i] <- mean(s.out[[i]]$sim.out$x1$ev[[1]])
	m.fd[i] <- mean(s.out[[i]]$sim.out$x1$fd[[1]])
	q025.fd[i] <- quantile(s.out[[i]]$sim.out$x1$fd[[1]], probs = .025)
	q975.fd[i] <- quantile(s.out[[i]]$sim.out$x1$fd[[1]], probs = .975)
}
temp.fd <- data.frame(vd, m.mulher, m.homem, m.fd, q025.fd, q975.fd)
temp.fd$cresc.p <- (temp.fd$m.mulher - temp.fd$m.homem)/temp.fd$m.homem

##plot
#média e CI

#renomeia as variáveis
temp.fd$vd <- ifelse(temp.fd$vd == "aparte", "Interrompido",
		     ifelse(temp.fd$vd == "aparte.H", "Interrompido\npor homem",
		     ifelse(temp.fd$vd == "aparte.M", "Interrompido\npor mulher",
		     ifelse(temp.fd$vd == "apart.other", "Interrompido por membro\nde outro partido",
		     ifelse(temp.fd$vd == "apart.party", "Interrompido por membro\ndo próprio partido",
		     ifelse(temp.fd$vd == "quest", "Recebeu questão",
		     ifelse(temp.fd$vd == "quest.part", "Recebeu questão\nde membro do próprio partido",
		     ifelse(temp.fd$vd == "quest.other", "Recebeu questão\nde membro de outro partido", "erro"))))))))
temp.fd$ y <- c(1:nrow(temp.fd))

#plot
png("figura10.png", width = 1400, height = 1400, res = 200)
par(mar = c(6, 1, 3, 1))
plot(x = range(temp.fd$q025.fd, temp.fd$q975.fd),
	y = range(1:(length(vd)+1)),
	type = "n",
	cex = .5,
	ylim = c(1-.5, max(length(vd))+.5),
	xlim = c(-.05, 0.025),
	yaxs = "i",
	axes = FALSE,
	xlab = "", ylab = "")

axis(1, at = seq(-0.025,0.025,0.01), labels = seq(-0.025,0.025,0.01), cex.axis = .8, lwd = 1.5, mgp = c(0,.5,0))
axis(3, at = seq(-0.025,0.025,0.01), labels = seq(-0.025,0.025,0.01), cex.axis = .8, lwd = 1.5, mgp = c(0,.5,0))
abline(v = seq(-0.025,0.025,0.01), lwd = 1.5, col = gray(.95))
abline(v = 0, lty = 3)

for(i in 1:nrow(temp.fd)){
lines(y = c(temp.fd$y[i],temp.fd$y[i]),  ## line for confidence interval
	x = c(temp.fd$q025.fd[i], temp.fd$q975.fd[i]),
	lwd = 2)
}

points(x = temp.fd$m.fd,
	 y = temp.fd$y,
	 cex = 1.5,
	 pch = 16)

for(i in 1:nrow(temp.fd)){
	text(-0.025, temp.fd$y[i], temp.fd$vd[i], cex = 0.8, pos = 2)
}
dev.off()


#########

##
## Regressão logística com interação
##

#lista de variáveis dependentes
vd <- c("quest.other","quest.part","quest",
	  "apart.other","apart.party",
	  "aparte.M","aparte.H","aparte")

vd.cod <- NULL
for(i in 1:length(vd)){
	vd.cod[i] <- which(colnames(tab) == vd[i])
}

#zelig
z.out <- NULL
x.mulher <- NULL
x.homem <- NULL
s.out <- list(NULL)
for(i in 1:length(vd)){
#modelos
	z.out <- zelig(tab[,vd.cod[i]] ~ mulher + 
		as.factor(main.topic.autor) +
		as.factor(legislatura) +
		n.words.autor +
		coalizao + n_legs + 
		as.factor(sigla_junta) +
		lider_part + lider_gov +
		lider_part:mulher,
		data = tab,
		model = "logit")

#define variáveis explicativas
	x.mulher <- setx(z.out, mulher = 1, lider_part = c(0,1))
	x.homem <- setx(z.out, mulher = 0, lider_part = c(0,1))

#simula quantidades de interesse
	s.out[[i]] <- sim(z.out, x = x.mulher, x1 = x.homem)
}

#plot	
m.mulher.lider <- NULL
m.homem.lider <- NULL
m.mulher.nlider <- NULL
m.homem.nlider <- NULL
media.lider <- NULL
q025.lider <- NULL
q975.lider <- NULL
media.nlider <- NULL
q025.nlider <- NULL
q975.nlider <- NULL

for(i in 1:length(vd)){
	#mulher líder
	mulher.lider <- s.out[[i]]$sim.out$range[[2]]$ev[[1]]
	#homem líder
	homem.lider <- s.out[[i]]$sim.out$range1[[2]]$ev[[1]]

	#mulher não líder
	mulher.nlider <- s.out[[i]]$sim.out$range[[1]]$ev[[1]]
	#homem não líder
	homem.nlider <- s.out[[i]]$sim.out$range1[[1]]$ev[[1]]

	#líderes
	m.mulher.lider[i] <- mean(mulher.lider)
	m.homem.lider[i] <- mean(homem.lider)
	media.lider[i] <- mean(mulher.lider - homem.lider)
	q025.lider[i] <- quantile(mulher.lider - homem.lider, probs = .025)
	q975.lider[i] <- quantile(mulher.lider - homem.lider, probs = .975)

	#não líderes
	m.mulher.nlider[i] <- mean(mulher.nlider)
	m.homem.nlider[i] <- mean(homem.nlider)
	media.nlider[i] <- mean(mulher.nlider - homem.nlider)
	q025.nlider[i] <- quantile(mulher.nlider - homem.nlider, probs = .025)
	q975.nlider[i] <- quantile(mulher.nlider - homem.nlider, probs = .975)
}
temp.lider <- data.frame(vd, m.mulher.lider, m.homem.lider, media.lider, q025.lider, q975.lider)
temp.lider$cresc.p <- (temp.lider$m.mulher.lider-temp.lider$m.homem.lider)/temp.lider$m.homem.lider
temp.nlider <- data.frame(vd, m.mulher.nlider, m.homem.nlider, media.nlider, q025.nlider, q975.nlider)
temp.nlider$cresc.p <- (temp.nlider$m.mulher.nlider-temp.nlider$m.homem.nlider)/temp.nlider$m.homem.nlider

#cria a tabela para o plot
colnames(temp.lider) <- c("vd","m.mulher","m.homem","fd","q025","q975","cresc")
colnames(temp.nlider) <- c("vd","m.mulher","m.homem","fd","q025","q975","cresc")
temp.fd <- rbind(temp.lider, temp.nlider)
temp.fd$y <- c(1:nrow(temp.lider),(1:nrow(temp.lider)+.2))
temp.fd$lider <- c(rep(1, 8), rep (0, 8))

#tabela auxiliar para o ylab
temp1 <- data.frame("vd" = temp.lider[,"vd"], "y" = c(1:nrow(temp.lider)) + 0.1)
temp1$vd <- ifelse(temp1$vd == "aparte", "Interrompido",
		     ifelse(temp1$vd == "aparte.H", "Interrompido\npor homem",
		     ifelse(temp1$vd == "aparte.M", "Interrompido\npor mulher",
		     ifelse(temp1$vd == "apart.other", "Interrompido por membro\nde outro partido",
		     ifelse(temp1$vd == "apart.party", "Interrompido por membro\ndo próprio partido",
		     ifelse(temp1$vd == "quest", "Recebeu questão",
		     ifelse(temp1$vd == "quest.part", "Recebeu questão\nde membro do próprio partido",
		     ifelse(temp1$vd == "quest.other", "Recebeu questão\nde membro de outro partido", "erro"))))))))

#plot
png("figura11.png", width = 1400, height = 1400, res = 200)
par(mar = c(6, 1, 3, 1))
plot(x = range(temp.fd$q025, temp.fd$q975),
	y = range(1:(length(vd)+1)),
	type = "n",
	cex = .5,
	ylim = c(1-.5, max(length(vd))+.5),
	xlim = c(-.09, 0.05),
	yaxs="i",
	axes=FALSE,
	xlab="", ylab="")

axis(1, at = seq(-0.05,0.05,.01), labels = seq(-0.05,0.05,.01), cex.axis = .8, lwd = 1.5, mgp = c(0,.5,0))
axis(3, at = seq(-0.05,0.05,.01), labels = seq(-0.05,0.05,.01), cex.axis = .8, lwd = 1.5, mgp = c(0,.5,0))
abline(v = seq(-0.05,0.05,.01), lwd = 1.5, col = gray(.95))
abline(v = 0, lty = 3)

for(i in 1:nrow(temp.fd)){
lines(y = c(temp.fd$y[i],temp.fd$y[i]),  ## line for confidence interval
	x = c(temp.fd$q025[i], temp.fd$q975[i]),
	lwd = 2)
}

points(x = temp.fd$fd,
	 y = temp.fd$y,
	 cex = 1.5,
	 pch = 16,
	 col = ifelse(temp.fd$lider == 1, "black", "grey"))

for(i in 1:nrow(temp1)){
	text(-0.05, temp1$y[i], temp1$vd[i], cex = 0.8, pos = 2)
}

legend("bottom", 
	inset = c(0, -.2), 
	legend=c("Líder Partidário","Não líder partidário"), 
	pch = c(16,16), col = c("black","grey"),
	xpd = T,  horiz = T)
dev.off()


